package day0401;

import java.util.*;
import java.util.stream.Collectors;

public class SubString19 {
    /**
     * 19.第 k 长子串 or 连续字母长度
     * 题目
     * 给定一个字符串,只包含大写字母
     * 求在包含同一字母的子串中,长度第 K 长的子串,相同字母只取最长的子串
     * <p>
     * 输入
     * 第一行 一个子串 1 < len <= 100
     * 只包含大写字母
     * 第二行为 k 的值
     * <p>
     * 输出
     * 输出连续出现次数第 k 多的字母的次数
     * 如果子串中只包含同一字母的子串数小于k
     * 则输出-1
     * <p>
     * 示例一
     * 输入
     * AABAAA
     * 2
     * 输出
     * 1
     * 说明
     * 同一字母连续出现最多的A，3次
     * 第二多2次，但A出现连续3次
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String s = sc.nextLine();
            int k = Integer.parseInt(sc.nextLine());
            HashMap<Character, Integer> map = new HashMap<>(s.length());
            int len = 1;
            for (int i = 0; i < s.length(); i++) {
                while (i != s.length() - 1 && s.charAt(i) == s.charAt(i + 1)) {
                    len++;
                    i++;
                }
                if (map.containsKey(s.charAt(i))) {
                    int max = Math.max(map.get(s.charAt(i)), len);
                    map.put(s.charAt(i), max);
                } else {
                    map.put(s.charAt(i), len);
                }
                len = 1;

            }
            List<Integer> valueList = map.values().stream().sorted().collect(Collectors.toList());
            if (valueList.size() < k) {
                System.out.println("-1");
            } else {
                System.out.println(valueList.get(valueList.size() - k));
            }
        }
    }
}
